1. Field of the Invention
The present invention relates generally to filters. It relates more particularly to a filter which has a length which varies dependent on a variable audio sample input rate.
2. Art Background
Filters have been used to filter noisy inputs in systems for processing signals. In a device such as an audio player and recorder for media playback and recording, which includes a system for processing the motion imparted by a user to an audio input to generate an audio sample rate output for controlling the motion of an audio transport, the audio input may be noisy. The noisy input may be due to an audio ripple resulting from the aliasing effect of a wow from motion variations imparted by the audio input user in speeding up, slowing down, speeding up, slowing down, and the like.
A filter may be implemented to filter the noisy input. The filter needs to be long enough to eliminate the input noise. Some specialized filters may be implemented to be long enough to eliminate the input noise. Such specialized filters may include a multiplicity of tap points, which may be computationally very intensive, requiring as many multiplies as there are tap points on the filter, which, for a filter with a multiplicity of tap points, would require a substantial number of multiplies. If the specialized filter is implemented with a constant gain, by averaging the sample values over the length of the filter, so as to generate coefficients of the filter equal to each other and constant, which are convolved at the input in an averaging calculation over the same number of samples to obtain the output, no multiplies are required. This can be implemented by a circular buffer and an accumulator. In such implementation, each time a sample is put into the circular buffer, the new sample value is added to the accumulator, and the oldest samples are taken out and their values are subtracted from the accumulator. The output of the filter is the accumulated sum of all the sample values divided by the length of the filter. This implementation is a computationally efficient version of a filter, in that regardless of how long it is, all it requires is an addition and a divide to calculate the filter. However, such a filter needs to be lengthened in order to attenuate the higher frequencies, requiring a longer buffer of samples to keep track of.
However, lengthening the filter may add a delay to the system which, along with the delay in the system imparted by a network for processing the signal, may make the system unresponsive, even if the processing time is sufficient to implement the filter. Also, the filter implementation may not run fast enough to run in real time, with the numerous other businesses running in the system.
Therefore, there has been a need existing for a filter which varies its length in response to a variable audio sample input rate, without an accumulator, to filter input noise. The present invention fulfills those needs.